<?php

namespace application\openapi\models\sendgood;

use application\openapi\models\BaseInput;
use peng\enums\DBOperator;

/**
 * 发货
 *
 * @author peng.huang
 */
class Save extends BaseInput {

    /**
     * 操作类型[A=新增、U=修改、D=删除]
     * 
     * @var string 
     */
    public $operator = DBOperator::INSERT;

    /**
     * 自增ID
     * 
     * @var int 
     */
    public $id = 0;

    /**
     * 用户id
     * 
     * @var int 
     */
    public $userid = 0;

    /**
     * 起始城市（传入地区code）
     * 
     * @var string 
     */
    public $startcity;

    /**
     * 起始地址
     * 
     * @var string 
     */
    public $startaddr;

    /**
     * 目的城市（传入地区code）
     * 
     * @var string 
     */
    public $endcity;

    /**
     * 目的地址
     * 
     * @var string 
     */
    public $endaddr;

    /**
     * 常运路线id
     * 
     * @var int 
     */
    public $lineid = 0;

    /**
     * 包装（纸箱、捆、根等）
     * 
     * @var string 
     */
    public $sendway;

    /**
     * 发货数量
     * 
     * @var int 
     */
    public $sendcount = 0;

    /**
     * 发货时间
     * 
     * @var date 
     */
    public $senddate;

    /**
     * 是否竞价[0=否、1=是]
     * 
     * @var int 
     */
    public $isbid = 0;

    /**
     * 目标价
     * 
     * @var double 
     */
    public $price = 0;

    /**
     * 是否接受跟踪[ 0=不接受、1=接受]
     * 
     * @var int 
     */
    public $istrace = 1;

    /**
     * 描述
     * 
     * @var string 
     */
    public $content;

    /**
     * 货源id
     * 
     * @var int 
     */
    public $goodid = 0;

    /**
     * 构造函数
     */
    public function __construct() {
        parent::__construct();
        $this->senddate = date('Y-m-d H:i:s');
    }

    /**
     * 规则
     * 
     * @return array
     */
    public function rules() {
        return array(
            array('operator', 'in', 'range' => array(DBOperator::INSERT, DBOperator::UPDATE, DBOperator::DELETE)),
            array(array('userid'), 'required'),
            array(array('id', 'userid'), 'int'),
            array(array('lineid', 'sendcount', 'goodid'), 'int', 'onWhen' => array($this, 'isSaved')),
            array(array('senddate'), 'datetime', 'onWhen' => array($this, 'isSaved')),
            array(array('isbid', 'istrace'), 'in', 'range' => array(0, 1), 'onWhen' => array($this, 'isSaved')),
            array(array('price'), 'double', 'onWhen' => array($this, 'isSaved')),
        );
    }

    /**
     * 属性名称
     * 
     * @return array
     */
    public function attrLabels() {
        return array(
            'operator' => '操作类型',
            'id' => 'ID',
            'userid' => '用户ID',
            'lineid' => '常运路线id',
            'sendcount' => '发货数量',
            'senddate' => '发货时间',
            'isbid' => '是否竞价',
            'price' => '目标价',
            'istrace' => '是否接受跟踪',
            'goodid' => '货源id'
        );
    }

}
